stage3day2section4-5

Section4:畳み込みニューラルネットワークの概念

畳み込みニューラルネットワーク(convolutional neural network:CNN)

畳み込み層・プーリング層を繰り返し

最後に全結合層、という構成の順伝播型ニューラルネットワーク

次元的なつながりのあるデータなら適応できる範囲が広い

特徴

人手による特徴抽出を必要としない、CNNが勝手に抽出してくれる。

出力と教師データを比較(誤差関数)

それを元に重みを調整していく

学習とは、重みを最適化=誤差関数最小化、すること

画像認識などでよく活用されている。

ヨビノリのyoutubeが分かりやすい。

https://www.youtube.com/watch?v=xzzTYL90M8s

畳み込み層

 1.バイアス フィルターを掛けたあと、bを足す

2.パティング フィルターを掛ける前に画像の周囲に行や列を足す。

        足されたマスには様々な数値(0や隣のマスの数値)を入れる

3.ストライド 

Maxプーリング

多少、位置がずれても同じ特徴を拾う  頑健性(ロバスト)

確認テスト

答え

パティング1なので入力画像は周囲に1づつ増えるので6+(1x2)となり8x8

2x2のフィルタを 

左隅から右へ1づつずらしながら右隅まで7

左上から下へ1づつずらしながら左隅まで7

なので7x7の出力画像となる

実装演習

2_6_simple_convolution_network_after.ipnb

*正答率トレーニング出力部分は長いのでトリムしました。

Section5:最新のCNN

AlexNetについて概要

*2021年現在、最新じゃない

ILSVRC 2012に参加し、2位に10%以上の差をつけて優勝

・Fratten:横一列にならべるだけ。(初期のNNでよく使われる手法)

⇒13✕13✕256⇒43264。

・GlobalMaxPooling 最大値を使う

256レイヤいるので、それぞれの大きなモノを1つづつとる⇒256コ

・GlobalAvgPooling 平均値を使う

256レイヤいるので、それぞれの平均を1つづつとる⇒256コ

なぜかわからないが

GlobalMaxPooling、GlobalAvgPoolingは、Frattenよりも性能がいい